<?php
    //1、封装一个函数，用于创建验证码
    function verify($width=60, $height=24, $pixelNum = 0.01, $lineNum = 4, $length=4, $style=3) {
        //2、设置响应头信息与开启session
        header('Content-type:image/png');
        session_start();
        //3、创建画布
        $img = imagecreatetruecolor($width, $height);
        //4、润色（画布着色）
        $bgColor = imagecolorallocate($img, 255, 255, 255);
        //5、填充画布
        imagefill($img, 0, 0, $bgColor);
        //6、添加干扰点
        for($i=0;$i<$width*$height*$pixelNum;$i++) {
            $x = mt_rand(0,$width-1);
            $y = mt_rand(0,$height-1);
            $pixelColor = imagecolorallocate($img, 227, 227, 227);
            imagesetpixel($img, $x, $y, $pixelColor);
        }
        //7、添加干扰线
        for($i=0;$i<$lineNum;$i++) {
            $x1 = mt_rand(0,$width-1);
            $y1 = mt_rand(0,$height-1);
            $x2 = mt_rand(0,$width-1);
            $y2 = mt_rand(0,$height-1);
            $lineColor = imagecolorallocate($img, 255, 255, 255);
            imageline($img, $x1, $y1, $x2, $y2, $lineColor);
        }
        
        //8、向画布中写入文字
        switch($style) {
            case 1:
                $str = '23456789';
            break;
            case 2:
                $str = 'abcdefghijmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ';
            break;
            case 3:
                $str = '23456789abcdefghjmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ';
            break;
        }
        $codeStr = '';
        for($i=0;$i<$length;$i++) {
            $code = $str[mt_rand(0,strlen($str)-1)];
            $codeStr .= $code;
            $fgColor = imagecolorallocate($img, mt_rand(0,200), mt_rand(0,200), mt_rand(0,200));
            imagestring($img, 5, $i*($width/$length) + 2, 5, $code, $fgColor);
        }
        //$codeStr = strtolower($codeStr);
        //9、创建图像
        $_SESSION['code'] = $codeStr;
        //ob_clean();
        imagepng($img);

        //10、销毁画布
        imagedestroy($img);
    }

    //11、调用函数，生成验证码
    //verify();
?>